package com.sqx.modules.app.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqx.modules.riderLine.entity.RiderLine;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;


/**
 * 用户
 */
@Data
@ApiModel("用户")
@TableName("tb_user")
public class UserEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户id")
    @TableId(type = IdType.AUTO, value = "user_id")
    private Long userId;
    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    @TableField("user_name")
    private String userName;
    /**
     * 信用分
     */
    private Integer creditScore;
    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private String avatar;

    /**
     * 性别 1男 2女
     */
    @ApiModelProperty("性别 1男 2女")
    private Integer sex;
    /**
     * 年龄
     */
    @ApiModelProperty("年龄")
    private Integer age;

    @ApiModelProperty("用户端App  openId")
    private String wxOpenId;

    @ApiModelProperty("师傅端App openId")
    private String riderWxOpenId;

    @ApiModelProperty("用户端公众号openId")
    private String accountOpenId;

    @ApiModelProperty("师傅端公众号openId")
    private String riderAccountOpenId;

    /**
     * 普通用户微信小程序openId
     */
    @ApiModelProperty("普通用户微信小程序openId")
    private String openId;

    /**
     * 骑手用户微信小程序openId
     */
    @ApiModelProperty("骑手用户微信小程序openId")
    private String riderOpenId;
    /**
     * 密码
     */
    private String password;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private String createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private String updateTime;

    /**
     * 苹果id
     */
    @TableField("apple_id")
    private String appleId;

    /**
     * 手机类型 1安卓 2ios
     */
    @TableField("sys_phone")
    private Integer sysPhone;

    /**
     * 状态 1正常 2禁用
     */
    private Integer status;

    /**
     * 来源 app 小程序 公众号
     */
    private String platform;

    /**
     * 积分
     */
    private Integer jifen;

    /**
     * 邀请码
     */
    @TableField("invitation_code")
    private String invitationCode;

    /**
     * 邀请人邀请码
     */
    @TableField("inviter_code")
    private String inviterCode;
    /**
     * 邀请人的人上级
     */
    @TableField("inviter_inviter_code")
    private String inviterInviterCode;

    /**
     * app消息推送
     */
    private String clientid;

    /**
     * 师傅app消息推送
     */
    private String clientRiderId;

    /**
     * 支付宝账号
     */
    private String zhiFuBao;

    /**
     * 支付宝名称
     */
    private String zhiFuBaoName;

    /**
     * 用户类型
     */
    @ApiModelProperty("用户类型")
    @TableField(value = "user_type")
    private Integer userType;


    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    @TableField(value = "nick_name")
    private String nickName;
    /**
     * 保证金
     */
    @ApiModelProperty("保证金")
    @TableField(value = "cash_deposit")
    private BigDecimal cashDeposit;

    /**
     * 账户余额
     */
    @ApiModelProperty("账户余额")
    private BigDecimal balance;
    /**
     * 证件号码
     */
    private String identityCardNumber;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthMention;

    /**
     * 身份证正面图片
     */
    private String identityCardFront;

    /**
     * 身份证反面图片
     */
    private String identityCardVerso;

    /**
     * 师傅驾驶证图片
     */
    @TableField("driving_Licence")
    private String drivingLicence;

    /**
     * 实名认证审核状态
     */
    @ApiModelProperty("实名认证审核状态  0：待审核；1：审核通过；2：审核不通过")
    @TableField(value = "check_certification")
    private String checkCertification;

    @ApiModelProperty("实名认证审核说明")
    @TableField(value = "check_certification_message")
    private String checkCertificationMessage;

    @ApiModelProperty("实名认证支付订单号")
    @TableField(value = "check_number")
    private String checkNumber;

    /**
     * 实名认证审核提交时间
     */
    @ApiModelProperty("实名认证提交时间")
    @TableField(value = "audit_time")
    private String auditTime;

    /**
     * 该用户是否是新用户 1：是新用户  2：不是新用户
     */
    @ApiModelProperty("该用户是否是新用户 1：是新用户  2：不是新用户")
    @TableField(value = "new_user_flag")
    private Integer newUserFlag;

    /**
     * 师傅是否上线 1：上线 2：未上线
     */
    @ApiModelProperty("师傅是否上线 1：上线 2：未上线")
    @TableField(value = "on_line_flag")
    private Integer onLineFlag;

    @ApiModelProperty("用户提现二维码")
    @TableField(value = "cash_qr_code")
    private String cashQrCode;

    @ApiModelProperty("是否推送消息")
    private Integer isSendMsg;

    private String msg;

    /**
     * 接单省
     */
    @ApiModelProperty("接单省")
    private String province;
    /**
     * 接单市
     */
    @ApiModelProperty("接单市")
    private String city;
    /**
     * 接单区
     */
    @ApiModelProperty("接单区")
    private String district;
    /**
     * 是否启用新人奖励制度(0不启用 1启用)
     */
    private Integer isEnableReward;
    /**
     * 新人奖励制度关闭时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime closeRewardTime;

    @ApiModelProperty("抽佣比例")
    private String rate;

    /**
     * 司机等级 1普通 2优享 3超级优享
     */
    private Integer riderLevel;

    @ApiModelProperty("下级抽佣比例")
    private String divideScale;

    @ApiModelProperty("二级抽佣比例")
    private String divideTwoScale;

    @ApiModelProperty("驾龄")
    private String drivingYear;
    @TableField(exist = false)
    private String indentNumber;

    @TableField(exist = false)
    private Integer payType;


    /**
     * 用户金额
     */
    @TableField(exist = false)
    private BigDecimal money;
    /**
     * 可用优惠券数量
     */
    @TableField(exist = false)
    private int couponCount;
//    /**
//     * 最后一次开始接单的对象
//     */
//    @TableField(exist = false)
//    private RiderLine riderLine;

    @TableField(exist = false)
    private BigDecimal riderLine;
    /**
     * 已在线时长
     */
    @TableField(exist = false)
    private Integer cumulative;

    @TableField(exist = false)
    private String search;
}
